package com.briup.bookstore.service;

import com.briup.bookstore.domain.vo.BookDetailVO;
import com.briup.bookstore.domain.vo.BookVO;

import java.util.List;
import java.util.Map;

/**
 * 图书服务接口
 */
public interface BookService {
    /**
     * 首页展示图书列表，要求展示最畅销的20本图书
     */
    List<BookVO> showBooks();

    /**
     * 根据图书分类ID查询图书列表
     */
    List<BookVO> findByCategory(Integer categoryId);

    /**
     * 根据图书名称、作者、出版社等关键字查询图书列表
     *
     * @param query 查询关键字，在sql查询时需要使用模糊查询
     */
    List<BookVO> searchBook(String query);

    /**
     * 根据图书id获取图书详情信息
     *
     * @param id 图书id
     * @return 图书详情信息
     */
    BookDetailVO findById(Integer id);

    /**
     * 根据图书id列表和对应的变动数量，更新图书库存
     *
     * @param map 图书id列表和对应的变动数量
     */
    void updateStock(Map<Integer, Integer> map);
}
